package cn.edu.suse.epilepsy.common;

import lombok.Data;

import java.io.Serializable;

/**
 * Object 和 T的对比
 * 共同点: 都能表示通用类型
 * 区别: Object是类
 * T 是一个开发中的占位符
 * @author bill
 * @date 2024/7/4 11:06
 */
@Data
public class R<T> implements Serializable {
    private Integer code;
    private String msg;
    private Object data;

//    给定一组方法,表示成功/失败

    public static <T>  R<T>  success(T data){
        R<T> r = new R<>();
        r.setCode(200);
        r.setMsg("success");
        r.setData(data);
        return r;
    }

    // 重载一个success,表示不带data, 例如 删除
    public static R success(){
        R r = new R();
        r.setCode(200);
        r.setMsg("success");
        return r;
    }

    public static R failed(){
        R r = new R();
        r.setCode(500);
        r.setMsg("failed");
        return r;
    }

    public static R failed(String msg){
        R r = new R();
        r.setCode(500);
        r.setMsg(msg);
        return r;
    }
}